﻿using System;
using System.Collections.Generic;
using System.Text;
using Castle.ActiveRecord;
using Castle.Components.Validator;
using MiragePWF.NH.Validation;
using Wolfut.MirageEE.Kernal.Common;
using Wolfut.MirageEE.Domain.CommonUtilities;

namespace Wolfut.MirageEE.Domain.Sales
{
    //销售订单出库明细信息

    [ActiveRecord("SALES_ORDER_OUT_STOCK_DETAILS")]
    public class SalesOrderOutStockDetail : PersistentObjectWithGuid
    {
        #region 销售订单ID
        private string salesOrderID;

        [Property("SALES_ORDER_ID")]
        [ValidateNonEmpty]
        public virtual string SalesOrderID
        {
            get
            {
                return salesOrderID;
            }
            set
            {
                salesOrderID = value;
            }
        }
        #endregion

        #region 商品ID
        private string productID;

        [Property("PRODUCT_ID")]
        [ValidateNonEmpty]
        public virtual string ProductID
        {
            get
            {
                return productID;
            }
            set
            {
                productID = value;
            }
        }
        #endregion

        #region 仓库ID
        private string warehouseID;

        [Property("WAREHOUSE_ID")]
        [ValidateNonEmpty]
        public virtual string WarehouseID
        {
            get
            {
                return warehouseID;
            }
            set
            {
                warehouseID = value;
            }
        }
        #endregion

        #region 订单数量
        private decimal orderAmount;

        [Property("ORDER_AMOUNT")]        
        public virtual decimal OrderAmount
        {
            get
            {
                return orderAmount;
            }
            set
            {
                orderAmount = value;
            }
        }
        #endregion

        #region 单价
        private decimal unitPrice;

        [Property("UNIT_PRICE")]       
        public virtual decimal UnitPrice
        {
            get
            {
                return unitPrice;
            }
            set
            {
                unitPrice = value;
            }
        }
        #endregion

        #region 单价类别
        private decimal unitPriceCategory;

        [Property("UNIT_PRICE_CATEGORY")]
        public virtual decimal UnitPriceCategory
        {
            get
            {
                return unitPriceCategory;
            }
            set
            {
                unitPriceCategory = value;
            }
        }
        #endregion

        #region 折扣率
        private decimal discountRate;

        [Property("DISCOUNT_RATE")]
        public virtual decimal DiscountRate
        {
            get
            {
                return discountRate;
            }
            set
            {
                discountRate = value;
            }
        }
        #endregion

        #region 折扣额
        private decimal discountAmount;

        [Property("DISCOUNT_AMOUNT")]
        public virtual decimal DiscountAmount
        {
            get
            {
                return discountAmount;
            }
            set
            {
                discountAmount = value;
            }
        }
        #endregion

        #region 税率
        private decimal taxRate;

        [Property("TAX_RATE")]
        public virtual decimal TaxRate
        {
            get
            {
                return taxRate;
            }
            set
            {
                taxRate = value;
            }
        }
        #endregion

        #region 税额
        private decimal taxAmount;

        [Property("TAX_AMOUNT")]
        public virtual decimal TaxAmount
        {
            get
            {
                return taxAmount;
            }
            set
            {
                taxAmount = value;
            }
        }
        #endregion

        #region 销售额
        private decimal salesSum;

        [Property("SALES_SUM")]
        public virtual decimal SalesSum
        {
            get
            {
                return salesSum;
            }
            set
            {
                salesSum = value;
            }
        }
        #endregion

        #region 金额
        private decimal totalSum;

        [Property("TOTAL_SUM")]
        public virtual decimal TotalSum
        {
            get
            {
                return totalSum;
            }
            set
            {
                totalSum = value;
            }
        }
        #endregion

        #region 未出库数量
        private decimal inventoryNumber;

        [Property("INVENTORY_NUMBER")]
        public virtual decimal InventoryNumber
        {
            get
            {
                return inventoryNumber;
            }
            set
            {
                inventoryNumber = value;
            }
        }
        #endregion

        #region 销售类别
        private string salesCategory;

        [Property("SALES_CATEGORY")]
        public virtual string SalesCategory
        {
            get
            {
                return salesCategory;
            }
            set
            {
                salesCategory = value;
            }
        }
        #endregion

        #region 科目ID
        private string subjectID;

        [Property("SUBJECT_ID")]
        [ValidateNonEmpty]
        public virtual string SubjectID
        {
            get
            {
                return subjectID;
            }
            set
            {
                subjectID = value;
            }
        }
        #endregion

        #region 是否删除
        [Property("IS_DELETED")]
        [ValidateNonEmpty]
        public virtual bool IsDeleted
        {
            get
            {
                return isDeleted;
            }
            set
            {
                isDeleted = value;
            }
        }
        private bool isDeleted;
        #endregion
    }
}
